package com.bbx.taxi.client.widget.Dailog;

import java.util.ArrayList;
import java.util.List;

import com.bbx.taxi.client.R;
import com.bbx.taxi.client.Util.IsActivityFinishUtils;

import android.annotation.SuppressLint;
import android.app.Dialog;
import android.content.Context;
import android.text.Spanned;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.Window;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;

/**
 * 作者：严旭文 on 2016/12/16 10:53
 * 邮箱：420255048@qq.com
 */
public class MyThanksFeeDailog extends Dialog  implements
        android.view.View.OnClickListener {
    public LinearLayout layout_dailog;
    public Button btn_confirm;
    public TextView tv_content;
    private boolean cancelable = true;
    private Context context;
    private boolean isFinish=false;
    public MyThanksFeeDailog(Context context) {
        super(context, (MessageDialog.map_dialog.get(context.toString()) != null ? MessageDialog.map_dialog.get(context.toString()) : 0) == 0 ? R.style.Dialog_bocop : R.style.Dialog_bocop2);
        this.context=context;
        init();
    }

    private void init() {
        View contentView = View.inflate(getContext(), R.layout.pop_thanksfee,
                null);
        setContentView(contentView);
        tv_content=(TextView)findViewById(R.id.tv_content);
        btn_confirm=(Button)findViewById(R.id.btn_confirm);
        btn_confirm.setOnClickListener(this);
        layout_dailog = (LinearLayout) findViewById(R.id.layout_dailog);
        layout_dailog.setVisibility(View.GONE);
        this.setCancelable(true);
        this.setCanceledOnTouchOutside(true);
        contentView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (cancelable) {
                    dismiss();
                }
            }
        });
    }

    @Override
    public void show() {
        if(!IsActivityFinishUtils.isActivityFinish(context)){
            if(MessageDialog.map_dialog!=null){
                int size=MessageDialog.map_dialog.get(context.toString())!=null?MessageDialog.map_dialog.get(context.toString()):0;
                MessageDialog.map_dialog.put(context.toString(), size+1);
                if(MessageDialog.map_dialog.get(context.toString())!=null&&MessageDialog.map_dialog.get(context.toString())<=MessageDialog.max_dialog){
                    super.show();
                    Animation a = AnimationUtils.loadAnimation(context, R.anim.dialog_in);
                    layout_dailog.startAnimation(a);
                    layout_dailog.setVisibility(View.VISIBLE);
                    isFinish=false;
                }else{
                    MessageDialog.map_dialog.put(context.toString(), MessageDialog.map_dialog.get(context.toString())-1);
                }
            }
        }
    }

    @SuppressLint("NewApi")
    @Override
    public void dismiss() {
        if(!IsActivityFinishUtils.isActivityFinish(context)){
            if(isFinish)
                super.dismiss();
            int size=MessageDialog.map_dialog.get(context.toString())!=null?MessageDialog.map_dialog.get(context.toString()):0;
            if(size>0){
                MessageDialog.map_dialog.put(context.toString(), size-1);
            }
            Animation a = AnimationUtils.loadAnimation(context, R.anim.dialog_out);
            layout_dailog.startAnimation(a);
            a.setAnimationListener(new AnimationListener() {

                @Override
                public void onAnimationStart(Animation anim) {}

                @Override
                public void onAnimationRepeat(Animation anim) {}
                @Override
                public void onAnimationEnd(Animation anim) {
                    isFinish=true;
                    dismiss();
                }
            });
        }

    }
    @Override
    public void setCancelable(boolean flag) {
        cancelable = flag;
        super.setCancelable(flag);
    }
    public void setContent(Spanned text) {
        tv_content.setText(text);

    }
    @Override
    public void onClick(View v) {
        switch(v.getId()){
            case R.id.btn_confirm:
                dismiss();
                break;
        }
    }

}
